<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // setCookie("abc", 10)
  // setCookie("qwe", 15, {
  //   expires:3
  // })
  // setCookie("asd", 20, {
  //   path:"/zxc"
  // })
  // setCookie("poi", 30, {
  //   path:"/zxc",
  //   expires: 7
  // })

  // // 设置cookie的封装
  // function setCookie(key, val, ops={}){
  //   // 处理有效期的配置信息
  //   let exp = "";
  //   if(ops.expires){
  //     const d = new Date();
  //     d.setDate(d.getDate() + ops.expires );
  //     exp = `;expires=${d}`
  //   }
  //   // 处理路径的配置信息
  //   let path = "";
  //   if(ops.path){
  //     path = ";path=" + ops.path
  //   }
  //   // 准备cookie语法字符
  //   let str = `${key}=${val}${path}${exp}`;
  //   // 设置cookie
  //   document.cookie = str;
  // }

  function setCookie(key, val, ops={}){
    let exp = "";
    if(ops.expires){
      const d = new Date();
      d.setDate(d.getDate() + ops.expires );
      exp = `;expires=${d}`
    }
    let path = ops.path ? ";path=" + ops.path : "";
    document.cookie = `${key}=${val}${path}${exp}`;
  }


  // removeCookie("abc")
  // removeCookie("asd", {
  //   path: "/zxc"
  // })

  // 删除cookie的封装
  // function removeCookie(key, ops={}){
  //   // 保证将来修改cookie时，有效期必然为过去的日期
  //   const o = {
  //     expires: -1
  //   }
  //   // 根据是否传入路径信息，决定修改cookie时，要不要携带路径
  //   if(ops.path){
  //     o.path = ops.path;
  //   }
  //   // 借助修改cookie的功能，设置相同名字，任意值，但有效期绝对为过去
  //   // 实现删除
  //   setCookie(key, "", o);
  // }

  function removeCookie(key, ops={}){
    ops.expires = -1;
    setCookie(key, "", ops);
  }



  console.log( getCookie("qwe") );
  console.log( getCookie("name") );
  console.log( getCookie("age") );
  console.log( getCookie("asd") );

  function getCookie(key){
    // 获取所有cookie后，解析出每对cookie
    const arr = document.cookie.split("; ")
    // 遍历解析出的每对cookie
    for(let i=0;i<arr.length;i++){
      // 再次分割cookie的名字和值
      const a = arr[i].split("=");
      // 将名字和传入的要查询的名字比较
      if(a[0] === key){
        // 一致，返回对应的值
        return a[1];
      }
    }
    // 所有cookie都比对完成后，还没有返回，表示没有符合的cookie
    return null;
  }
  
  
  
  console.log(document.cookie)


  
</script>
</html>